Os testes são aplicados a tipos diferentes de destinos, diferentes estágios ou níveis de esforço de trabalho. Esses
níveis são normalmente distintos por funções que são habilitadas para projetar e conduzir os testes nas quais as
técnicas são mais apropriadas para os testes em cada nível. É importante assegurar que o equilíbrio de ênfase seja
retido em diferentes esforços de trabalho.
Teste de Desenvolvedor
O teste do desenvolvedor indica os aspectos do design de teste e a implementação mais apropriada para a equipe de
desenvolvedores. Isso contrasta com o Teste Independente. Na maioria dos casos, a execução do teste inicialmente ocorre
com o grupo de teste do desenvolvedor que projetou e implementou o teste, mas é uma boa prática para os desenvolvedores
para criar seus testes de modo que fiquem disponíveis para execução de grupos de teste independentes.
Tradicionalmente, o teste do desenvolvedor foi considerado principalmente em respeito ao teste de unidade. Enquanto
alguns desenvolvedores também executam testes de integração em níveis variados, isso depende muito da cultura e outras
questões de contexto. É recomendamos que o teste do desenvolvedor cubra mais do que apenas as unidades independentes de
teste em isolamento.
Teste Independente
O teste independente indica que o design de teste e a implementação mais apropriadamente executados por alguém que é
independente da equipe de desenvolvedores. Na maioria dos casos, a execução do teste inicialmente ocorre com o
grupo de teste independente que projetou e implementou o teste, mas os testadores independentes devem criar os testes
para torná-los disponíveis para os grupos de teste do desenvolvedor executarem.
-
Teste Independente de Envolvidos
Uma visualização alternativa do teste independente é que representa o teste que tem como base as necessidades e
preocupações de vários envolvidos. Portanto, é chamado de Teste de Envolvidos. Essa é uma distinção importante, ajuda a
incluir um conjunto maior das preocupações dos envolvidos que podem tradicionalmente ser consideradas, estendendo de
algum modo o "cliente" genérico com os envolvidos, como a equipe de suporte técnico, instrutores técnicos e equipe de
vendas, além de clientes e usuários.
Teste de Unidade
O teste de unidade enfoca a verificação dos menores elementos testáveis do software. Normalmente o teste de unidade é
aplicado aos componentes representados no modelo de implementação para verificar se os fluxos de controle e de dados
estão cobertos e se eles funcionam conforme o esperado. O Implementador executa o teste de unidade na medida em que a
unidade é desenvolvida. Os detalhes do teste de unidade são descritos na disciplina Implementação.
Teste de Integração
O teste de integração é executado para assegurar que os componentes no modelo de implementação operem adequadamente
quando combinado para executar um caso de uso. O objetivo do teste é um pacote ou conjunto de pacotes do modelo de
implementação. Em geral, os pacotes que estão sendo combinados são provenientes de diferentes organizações de
desenvolvimento. O teste de integração detecta imperfeições ou erros nas especificações da interface do pacote.
Em alguns casos, a suposição dos desenvolvedores é que os outros grupos como os testadores independentes executarão os
testes de integração. Essa situação apresenta riscos para o projeto de software e finalmente para a qualidade do
software porque as áreas de integração são um ponto comum do defeito de software e os testes de integração executados
por testadores independentes normalmente utilizam técnicas de caixa preta e estão normalmente lidando com componentes
de software maiores.
Uma abordagem melhor é considerar no teste de integração a responsabilidade do desenvolvedor e dos testadores
independentes, mas fazer da estratégia de cada equipe um esforço de teste não sobrepõe significativamente. A natureza
exata dessa sobreposição tem como base as necessidades do projeto individual. É recomendado que você estimule um
ambiente em que os desenvolvedores e os testadores do sistema independente compartilhem uma única visão de qualidade.
Teste do Sistema
Tradicionalmente, o teste do sistema é feito quando o software está funcionando como um todo. Um ciclo de vida
iterativo permite que o teste do sistema ocorra muito mais cedo, assim que os subconjuntos bem formados do
comportamento de caso de uso são implementados. Normalmente o destino é os elementos de funcionamento de ponta a ponta
do sistema.
Teste de Aceitação
O teste de aceitação do Usuário é a ação de teste final realizada antes da implementação do software. A meta do teste
de aceitação é verificar se o software está pronto e se pode ser utilizado pelos usuários para desempenhar essas
funções e tarefas para as quais o software foi construído. Há outras noções de teste de aceitação que são geralmente
caracterizadas por uma entrega de um grupo ou de uma equipe para outra. Por exemplo, um teste de aceitação de
construção é o teste feito para aceitar o encaminhamento de uma nova construção de software a partir do desenvolvimento
para o teste independente.
Um comentário sobre a sequência e a cronometragem dos níveis de teste
Tradicionalmente, pensam que o teste de unidade é implementado logo na iteração como o primeiro estágio de teste: todas
as unidades requeridas para serem transmitidas antes dos estágios subseqüentes são conduzidas. No entanto, em um
processo de desenvolvimento iterativo, essa abordagem é uma regra geral, inapropriada. Uma abordagem melhor é
identificar os testes de unidade, de integração e do sistema que oferecem mais potencial para a localização de erros e,
em seguida, implementá-los e executá-los com base em uma combinação do maior risco e do ambiente de suporte.
Fonte: MDS, Metodologia de Desenvolvimento de Sistemas - Ministério da Cultura, 2008.
|